var _a;
// 尝试从浏览器的本地存储中获取名为 'Memo' 的数据。如果不存在，就使用默认的任务列表
// JSON.parse() 将存储的字符串转换为 TypeScript 对象数组
var obj = JSON.parse(localStorage.getItem("Memo")) || [
  { text: "第三方斯蒂芬", completed: false },
  { text: "大范甘迪发广告", completed: false },
  { text: "电饭锅回复", completed: true },
];
// save 函数用于将当前的任务数组 obj 转换为 JSON 字符串，并保存到本地存储中
function save() {
  localStorage.setItem("Memo", JSON.stringify(obj));
}
// load 函数调用 btn('all') 函数，用于在页面加载时显示所有任务
function load() {
  btn("all");
}
// 新增
(_a = document.querySelector("#add")) === null || _a === void 0
  ? void 0
  : _a.addEventListener("click", function addMemo() {
      var _a;
      var input = document.querySelector("#MemoInput");
      var MemoValue =
        (_a = input === null || input === void 0 ? void 0 : input.value) !==
          null && _a !== void 0
          ? _a
          : "";
      if (MemoValue) {
        obj.push({
          text: MemoValue,
          completed: false,
        });
        // 清空输入框
        input === null || input === void 0 ? void 0 : (input.value = "");
        // 保存更新后的任务列表
        save();
        // 刷新显示所有任务
        btn("all");
      } else {
        alert("请输入任务内容");
      }
    });
// 切换对应数据的 completed 状态
function updateCompletion(MemoId) {
  var Memo = obj[MemoId];
  if (Memo) {
    Memo.completed = !Memo.completed;
    save();
    btn("all");
  }
}
// 从 obj 数组中删除对应的数据
function deleteMemo(MemoId) {
  if (MemoId >= 0 && MemoId < obj.length) {
    obj.splice(MemoId, 1);
    save();
    btn("all");
  }
}
function btn(filter) {
  var _a;
  // 获取任务列表
  var List = document.querySelector("#List");
  // 清空任务列表
  List === null || List === void 0 ? void 0 : (List.innerHTML = "");
  // 初始化一个变量，用来计数
  var num = 0;
  // Memo 是当前遍历到的任务对象，i 是任务在数组中的索引。
  obj.forEach(function (Memo, i) {
    // 根据 filter 判断显示哪一个
    if (
      filter === "all" ||
      (filter === "incomplete" && !Memo.completed) ||
      (filter === "completed" && Memo.completed)
    ) {
      // 改变复选框状态
      var completed = Memo.completed ? "checked" : "";
      // 添加任务列表内容
      List === null || List === void 0
        ? void 0
        : (List.innerHTML += "\n            <li id='li"
            .concat(
              i,
              "'>\n                <input type=\"checkbox\" id='checkbox"
            )
            .concat(i, "' ")
            .concat(completed, ' onclick="updateCompletion(')
            .concat(i, ")\">\n                <label for='checkbox")
            .concat(i, "' class=\"")
            .concat(Memo.completed ? "completed" : "", '">')
            .concat(
              Memo.text,
              '</label>\n                <button class="delete-btn" onclick="deleteMemo('
            )
            .concat(
              i,
              ')">\u5220\u9664</button>\n            </li>\n        '
            ));
    }
    // 如果没有选中复选框，未完成任务+1
    if (!Memo.completed) {
      num++;
    }
  });
  // 未完成任务的个数
  (_a = document.getElementById("incomplete")) === null || _a === void 0
    ? void 0
    : (_a.textContent = "未完成任务: " + num);
}
window.onload = load;
